package com.hochschild.fwk.util;

/**
 * Clase para manejo de excepciones del sistema.
 * 
 * @author <a href="mailto:nolbertoj@gmail.com">Nolberto Jaimes</a>
 * @version $$
 * @FechaCreacion Jan 12, 2010
 * @FechaModificacion ${date}
 */
public abstract class TraceException extends Exception {

	/** The Constant serialVersionUID. */
	private static final long serialVersionUID = 1L;

	/** Mensaje personalizado de error. */
	private String errorMsg;

	/** Codigo de error. */
	private long errorCode;

	/**
     */
	public TraceException() {
		super();
	}

	/**
	 * Instancia un nuevo trace exception.
	 * 
	 * @param pMsg
	 * 
	 */
	public TraceException(String message) {
		super(message);
		errorMsg = message;
	}

	/**
	 * Create un nuevo TraceException object.
	 * 
	 * @param pMsg
	 *            Mensaje
	 * @param pThr
	 *            Exception a atrapar
	 */
	public TraceException(String message, Throwable cause) {
		super(message, cause);
		errorMsg = message;
	}

	/**
     */
	public TraceException(Throwable cause) {
		super(cause);
		errorMsg = cause.getMessage();
	}

	/**
	 * Metodo (getter) de acceso a errorCode.
	 * 
	 * @return Retorna errorCode.
	 */
	public long getErrorCode() {
		return errorCode;
	}

	/**
	 * Metodo (setter) de Modfificacion de errorCode.
	 * 
	 * @param pErrorCode
	 *            errorCode a Asignar.
	 */
	public void setErrorCode(long pErrorCode) {
		errorCode = pErrorCode;
	}

	/**
	 * Metodo (getter) de acceso a errorMsg.
	 * 
	 * @return Retorna errorMsg.
	 */
	public String getErrorMsg() {
		return errorMsg;
	}

	/**
	 * Metodo (setter) de Modfificacion de errorMsg.
	 * 
	 * @param pErrorMsg
	 *            errorMsg a Asignar.
	 */
	public void setErrorMsg(String pErrorMsg) {
		errorMsg = pErrorMsg;
	}
}
